/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.flowumi.facade.Impl;


import com.flowumi.entity.Usuarios;
import com.flowumi.entityFacade.RolesFacadeLocal;
import com.flowumi.entityFacade.UsuariosFacadeLocal;
import com.flowumi.exceptions.ClavesNoConcuerdanException;
import com.flowumi.exceptions.UsuarioNoConectadoException;
import com.flowumi.exceptions.UsuarioNoExisteException;
import com.flowumi.facade.SessionFacade;
import com.flowumi.util.EncryptUtil;
import java.security.NoSuchAlgorithmException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author ideacentre
 */
@Stateless
public class SessionFacadeImpl implements SessionFacade{

    @EJB
    UsuariosFacadeLocal usuariosFacadeLocal;
    
    @Override
    public Usuarios iniciarSession(Usuarios usuario) throws ClavesNoConcuerdanException, UsuarioNoExisteException, UsuarioNoConectadoException {
        try {
            Usuarios usuarioConectado = usuariosFacadeLocal.find(usuario.getNombreUsuario());
            if(usuarioConectado == null){
                throw new UsuarioNoExisteException();
            }
            if(!EncryptUtil.comparePassword(usuario.getPassword(), usuarioConectado.getPassword())){
                throw new ClavesNoConcuerdanException();
            }
            return usuarioConectado;
        } catch (NoSuchAlgorithmException ex) {
           throw new UsuarioNoConectadoException();
        }
    }

}
